import PlotlyEditor from './PlotlyEditor';
import DefaultEditor from './DefaultEditor';
import EditorControls from './EditorControls';
import {
  connectCartesianSubplotToLayout,
  connectNonCartesianSubplotToLayout,
  connectAnnotationToLayout,
  connectShapeToLayout,
  connectAggregationToTransform,
  connectImageToLayout,
  connectAxesToLayout,
  connectTransformToTrace,
  connectLayoutToPlot,
  connectToContainer,
  connectTraceToPlot,
  connectRangeSelectorToAxis,
  dereference,
  localize,
  localizeString,
  walkObject,
} from './lib';
import {EDITOR_ACTIONS} from './lib/constants';

import {
  AnnotationAccordion,
  ShapeAccordion,
  RangeSelectorAccordion,
  ImageAccordion,
  AnnotationArrowRef,
  AnnotationRef,
  PositioningRef,
  ArrowSelector,
  AxesFold,
  AxesRange,
  TransformAccordion,
  NTicks,
  DTicks,
  AxesSelector,
  PanelMessage,
  Button,
  ColorPicker,
  ColorwayPicker,
  PieColorscalePicker,
  ColorscalePicker,
  ContourNumeric,
  ErrorBars,
  DataSelector,
  Dropdown,
  Dropzone,
  Flaglist,
  PlotlyFold,
  Fold,
  FontSelector,
  Info,
  NumericFraction,
  PositioningNumeric,
  NumericFractionInverse,
  LayoutPanel,
  LayoutSection,
  LineDashSelector,
  LineShapeSelector,
  Numeric,
  AxisRangeValue,
  Text,
  PlotlyPanel,
  Panel,
  PanelEmpty,
  PanelMenuWrapper,
  Radio,
  PlotlySection,
  Section,
  SingleSidebarItem,
  SymbolSelector,
  TextEditor,
  RangesliderVisible,
  TraceAccordion,
  TraceMarkerSection,
  TraceRequiredPanel,
  TraceSelector,
  RectanglePositioner,
} from './components';

import {
  GraphCreatePanel,
  StyleAxesPanel,
  GraphTransformsPanel,
  StyleColorbarsPanel,
  StyleLayoutPanel,
  StyleLegendPanel,
  StyleNotesPanel,
  StyleShapesPanel,
  StyleImagesPanel,
  StyleTracesPanel,
} from './default_panels';

export {
  AnnotationAccordion,
  ShapeAccordion,
  ImageAccordion,
  RangeSelectorAccordion,
  AnnotationArrowRef,
  AnnotationRef,
  PositioningRef,
  ArrowSelector,
  TransformAccordion,
  AxesFold,
  AxesRange,
  NTicks,
  DTicks,
  AxesSelector,
  Button,
  ColorPicker,
  PanelMessage,
  ColorwayPicker,
  ColorscalePicker,
  PieColorscalePicker,
  ContourNumeric,
  ErrorBars,
  DataSelector,
  Dropdown,
  Dropzone,
  EDITOR_ACTIONS,
  RangesliderVisible,
  Flaglist,
  PlotlyFold,
  Fold,
  FontSelector,
  GraphCreatePanel,
  Info,
  NumericFraction,
  PositioningNumeric,
  NumericFractionInverse,
  LayoutPanel,
  LayoutSection,
  LineDashSelector,
  LineShapeSelector,
  Numeric,
  AxisRangeValue,
  Text,
  PlotlyPanel,
  Panel,
  PanelEmpty,
  PanelMenuWrapper,
  Radio,
  PlotlySection,
  Section,
  SingleSidebarItem,
  GraphTransformsPanel,
  StyleAxesPanel,
  StyleColorbarsPanel,
  StyleLayoutPanel,
  StyleLegendPanel,
  StyleNotesPanel,
  StyleShapesPanel,
  StyleImagesPanel,
  StyleTracesPanel,
  SymbolSelector,
  TextEditor,
  TraceAccordion,
  TraceMarkerSection,
  TraceRequiredPanel,
  TraceSelector,
  connectCartesianSubplotToLayout,
  connectNonCartesianSubplotToLayout,
  connectAnnotationToLayout,
  connectShapeToLayout,
  connectImageToLayout,
  connectAxesToLayout,
  connectTransformToTrace,
  connectAggregationToTransform,
  connectLayoutToPlot,
  connectToContainer,
  connectRangeSelectorToAxis,
  connectTraceToPlot,
  dereference,
  localize,
  localizeString,
  walkObject,
  EditorControls,
  DefaultEditor,
  RectanglePositioner,
};

export default PlotlyEditor;
